﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using smartphone.App_Code;
using System.Data;
using System.Text;

namespace smartphone.UserControls
{
    public partial class AdminAttrValue : System.Web.UI.UserControl
    {
        
        private Catalog catalog = new Catalog();
        protected void Page_Load(object sender, EventArgs e)
        {
            if(Request.QueryString["AttrID"] == null)
            {
                this.Visible = false;
            }
            else
            {
                if (!IsPostBack)
                {
                    this.Visible = true;
                    BindGrid();
                }
            }
            
        }

        private void BindGrid()
        {
            int id = Int32.Parse(Request.QueryString["AttrID"].ToString());
            GridViewAttrValue.DataSource = catalog.GetAttrValue(id);
            GridViewAttrValue.DataBind();

            DataTable table = catalog.GetCurrentAttr(id);
            LabelInform.Text = "Cập nhật giá trị thuộc tính: " + table.Rows[0]["tenThuocTinh"].ToString();
            LabelError.Text = "";
        }

        protected void GridViewAttrValue_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string id = GridViewAttrValue.DataKeys[e.RowIndex].Value.ToString();
            string value = ((TextBox)GridViewAttrValue.Rows[e.RowIndex].Cells[0].Controls[0]).Text;

            bool success = catalog.UpdateAttrValue(Int32.Parse(id), value);
            GridViewAttrValue.EditIndex = -1;
            BindGrid();
        }

        protected void GridViewAttrValue_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            bool success = false;
            string id = GridViewAttrValue.DataKeys[e.RowIndex].Value.ToString();
            try
            {
                success = catalog.DeleteAttrValue(Int32.Parse(id));
            }
            catch(Exception ex)
            {
                
            }

            if (success == false)
            {
                ShowPopUpMsg("Thuộc tính này đã được gán cho 1 sản phẩm nên không thể xóa.");
            }
            GridViewAttrValue.EditIndex = -1;
            BindGrid();
        }

        protected void GridViewAttrValue_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridViewAttrValue.EditIndex = e.NewEditIndex;
            BindGrid();
        }

        protected void GridViewAttrValue_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridViewAttrValue.EditIndex = -1;
            BindGrid();
        }

        protected void BtCreateAttrValue_Click(object sender, EventArgs e)
        {
            int id = Int32.Parse(Request.QueryString["AttrID"].ToString());
            string value = TxtAttrValue.Text;
            bool success = catalog.CreateAttrValue(id, value);
            LabelInform2.Text = "Thêm thành công.";
            BindGrid();
        }

        /// <summary>
        /// Hien thi messagebox thong bao loi
        /// </summary>
        /// <param name="msg">Nội dung thông báo được đưa ra</param>
        private void ShowPopUpMsg(string msg)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("alert('");
            sb.Append(msg.Replace("\n", "\\n").Replace("\r", "").Replace("'", "\\'"));
            sb.Append("');");
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "showalert", sb.ToString(), true);
        }
    }
}